Skip to content

M13 IPv6 osoitteet

Takaisin opintojakson aikatauluun

Opetusvideot

Video: Tietoverkot, IPv6 osoitteet

Microsoft Stream (sharepoint) video

Tausta

Ote RFC:stä kenties selittää parhaiten motivaatioita IPv6:lle. Tärkeimpinä kohtina.

  • Osoiteavaruuden kasvatus (32 bit -> 128 bit)
  • Otsikon rakenteen yksinkertaistaminen (64 bittisille prosessoreille)

RFC 8200 - Internet Protocol, Version 6 (IPv6) Specification

IP version 6 (IPv6) is a new version of the Internet Protocol (IP), designed as the successor to IP version 4 (IPv4) RFC791. The changes from IPv4 to IPv6 fall primarily into the following categories:

  • Expanded Addressing Capabilities
  • Header Format Simplification
  • Improved Support for Extensions and Options
  • Flow Labeling Capability
  • Authentication and Privacy Capabilities

Internet Header versio 6

!a

!a

Versio (4 bit)

Varattu kenttä otsikon versiolle. Joko arvo 4 tai 6. Eli IPv6:ssa 0110.

Traffic Class (8 bit)

Liikenne luokka paketille. Tunnetaan Type of Service -kenttänä IPv4:ssä ja sisältää Differentiated Service Code Point (DSCP) -bitit näinä päivinä.

Flow Label (20 bit) suom. vuoleima

Tietoliikennevuot tunnistetaan yleensä 5-kentän arvona (LähdeIP, KohdeIP, LähdePortti, KohdePortti, Protokolla), mutta NAT, pakettien pilkkominen ja salaus voi muuttaa näitä kenttiä.

Vuoleima on uusi kenttä IPv6:ssa tunnistamaan yksittäisen tietoliikenteen kahden tahon välillä. Tämä auttaa prosessoimaan paketteja niiden reitityspolulla.

Payload Length (16 bit) suom. kuormanpituus

Mikä paketin kokonaispituus on tavuissa (sisältäen otsikon ja datan).

Next Header (8 bit) suom. seuraava otsikko

Aiemmin tunnettiin Protokolla -kenttänä IPv4:ssa. Käyttää samoja arvoja kuin se.

M03 IPv4 Addresses, Subnetting and ARP

Osoittaa seuraavan protokollan paketissa. Olkoot TCP, UDP, ICMP tai jotain muuta. IANA listaa nämä protokollat

Tyypilliset arvot tällä opintojaksolla:

Value Protocol
1 ICMP
6 TCP
17 UDP

Hop Limit (8 bit) suom. hyppyjen raja

Identical with Time To Live in IPv4.

M03 IPv4 Addresses, Subnetting and ARP

Jos tämä kenttä on 0, pakettia ei voi edelleen lähettää. Yleensä lähettäessä kenttään asetetaan arvo 64 - 255 välillä. Jokainen reitityspäätös matkalla vähentää arvoa yhdellä.

Source Address (128 bit) suom lähdeosoite

IPv6 paketteja lähettävän tietokoneen Lähdeosoite.

Destination Address (128 bit) suom kohdeosoite

IPv6 paketin vastaanottavan tietokoneen Kohdeosoite.

IPv6 osoitteistus

Osoiteavaruus esitetään (meille ihmisille) kahdeksan eri heksadesimaalin sarjoina, jotka erotetaan kaksoispisteellä :. Esimerkki olisi

2001:dead:beef:acdc:1234:5678:abcd:ef12

Valitettavasti tietokoneet eivät käsittele hexana tai kokonaislukuina numeroita, eli sama osoite binäärinä olisi

0010000000000001:1101111010101101:1011111011101111:1010110011011100:1010110011011100:0101011001111000:1010101111001101:1110111100010010

10-lukujärjestelmää (desimaaliluku) ei käytetä IPv6:ssa (toisin kuin IPv6:ssa).

IPv6 osoitteen esitystavat

IPv6 osoitteen voi lyhentää kerran kaksois-kasoispisteellä eli ::.

2001:0000:0000:0001:0000:0000:0000:0005 olisi lyhennettynä 2001:0000:0000:0001::5.

Heksadesimaalit eivät ole niin "elektroniikkaa läheisiä", kuten binääri on. Täten,

  • nollia ei tarvitse kirjoittaa
  • Mutta jos 4 heksadesimaalin sarja on 0, se täytyy ilmoittaa yhdellä nollalla

2001:0000:0000:0001::5 olisi siis 2001:0:0:1::5

Ja nämä lyhennyssäännöt voivat olla todella raivostuttavia muistaa IPv6:sta.

Aliverkotus

Aliverkotus toimii tismalleen samalla tavalla kuin IPv4:ssa. Eli opettele Subnetting works exactly the sameway as in IPv4. Eli opettele se IPv4 aliverkotus ja osaat IPv6:sen.

Mutta koska osoiteavaruus on niin valtava... ei ole tarvetta pienille aliverkoille!!!

Oletusaliverkko työasemille on siis /64.

Tämä tarkoittaa että yhdellä aliverkolla (VLAN:lla) on 64 host bittiä käytössä, eli 2`64 = 18 446 744 073 709 551 616 käytettävää osoitetta päätelaitteille.

Tyypillinen aliverkon koko

Minun suositukseni on tälle opintojaksolle käyttää /64 aliverkkoja kaikkialla paitsi loopback -rajapinnoissa.

IANA rekisteröinti

IANA jakelee /48 kokoisia osoiteavaruuksia tahoille, jotka haluavat saada IPv6 osoitteita. Internet palveluntarjoajat (ISP:t) saavat /32. Tämä johtaa seuraavaan visualisointiin osoiteavaruudesta:

!a

IPv6 osoitetyyppejä

Tarkoitus IPv6 Prefix (suom. osoitealku) IPv4 rinnakkaisuus kommentit
Global Unicast 2000::/3 Ei vastaavaa yksittäistä osoiteavaruutta IPv4:ssa IPv6:sta suunnitellessa oli luksusta nauttia IPv4:sen kokemuksista. Pystyttiin jakamaan osoiteavaruus tarkemmin/viisaammin. Käytetään Unicast reitityksessä.
Multicast ff00::/8 224.0.0.0/4 Yhdeltä taholta usealle, muttei kaikille. Multicast on kokonaan oma kokonaisuutensa. Käytetään esim. live-TV:n lähetykseen IP-verkoissa.
Link-Local Addresses fe80::/10 169.254.0.0/16 Jos DHCP -palvelinta ei ole saatavilla, luo/ota käyttöön osoite tästä osoiteavaruudesta. IPv6 generoi linkkikohtaisen osoitteen vaikka DHCP olisikin. Käytetään liikenteen edelleen lähetykseen (reitityksessä).
Loopback ::1/128 127.0.0.1 IP osoite jolla työasema/päätelaite voi kommunikoida itsensä kanssa (ei pidä not to be confused with router loopbacks)

Konfiguraatioesimerkit

Dual-Stack?

Dual-stack (suom. kaksoispino?) tarkoittaa rinnakkaista toteutusta IPv4:lle ja IPv6:lle samassa tietoverkossa. Yleensä tämä tilanne on, jos halutaan saumattomasti siirtyä IPv6:seen.

!a

Saadakseen topologian toimimaan... tässä on muutamia konfiguraatioesimerkkejä.

Topologiakonfiguraatio

IPv6 on OSI mallin kerroksen 3 protokolla, eli VLAN tag/untag asiat eivät muutu. Eli älä koske niihin!

Vyos
interfaces {                                                                              
    ethernet eth0 {                                                                       
        duplex auto                                                                       
        hw-id 08:00:27:87:12:ef                                                           
        smp-affinity auto                                                                 
        speed auto                                                                        
        vif 5 {                                                                           
            address 192.168.0.254/24                                                      
            address 2001:dead:beef:5::1/64                                                
        }
        vif 10 {
            address 192.168.10.254/24
            address 2001:dead:beef:10::1/64
        }
        vif 15 {
            address 192.168.15.254/24
            address 2001:dead:beef:15::1/64
        }
    }
}
Lubuntu1

!a

Lubuntu2

!a

Reititys IPv6:ssa

Käytämme OSPFv3:sta reititykseen IPv6:ssa. Mikä on itseasiassa huomattavasti helpompaa laittaa päälle kuin IPv4:ssa.

set protocols ospfv3 parameters router-id <x.x.x.x>

Jos haluat router-id olevan määritetty manuaalisesti, käytä set protocols ospf parameters router-id <x.x.x.x> jossa<x.x.x.x> on esim. loopback rajapinnan IPv4 osoite.

OSPFv3 tosissaan käyttää IPv4:sta router-id:nä

set protocols ospfv3 area 0.0.0.0 interface <interface>

Jossa <interface> on fyysisen rajapinta kytkettynä OSPF reitittimeen esim. eth0, eth1, eth0.5. Sillä rajapinnalla tulee olla IPv6 osoite (ja täten aliverkko) konfiguroituna.

Tällä komennolla on kaksoistarkoitus

  1. Se lähettää ja vastaanottaa OSPF Hello viestejä rajapinnasta johon kyseinen verkko on konfiguroitu
  2. Se lisää verkon OSPF tietokantaan ja rupeaa mainostamaan sitä naapureille

Samanlainen siis kuin set protocols ospf area 0 network <x.x.x.x/xx> IPv4:ssa.

OSPFv3 konfiguraatioesimerkki Vyos1:llä
protocols {
    ospfv3 {
        area 0.0.0.0 {
            interface eth1
            interface eth0.10
            interface eth0.15
            interface eth0.5
        }
        parameters {
         router-id 10.0.255.1
        }
    }
}
show ipv6 ospfv3
vyos@vyos:~$ show ipv6 ospfv3
 OSPFv3 Routing Process (0) with Router-ID 10.0.255.1
 Running 00:09:10
 LSA minimum arrival 1000 msecs
 Initial SPF scheduling delay 0 millisec(s)
 Minimum hold time between consecutive SPFs 50 millsecond(s)
 Maximum hold time between consecutive SPFs 5000 millsecond(s)
 Hold time multiplier is currently 1
 SPF algorithm last executed 00:05:22 ago, reason R+, R-
 Last SPF duration 0 sec 234 usec
 SPF timer is inactive
 Number of AS scoped LSAs is 0
 Number of areas in this router is 1

 Area 0.0.0.0
     Number of Area scoped LSAs is 5
     Interface attached to this area: eth1 eth0.10 eth0.15 eth0.5
SPF last executed 322.882917s ago
vyos@vyos:~$
show ipv6 ospfv3 neighbor
vyos@vyos:~$ show ipv6 ospfv3 neighbor 
Neighbor ID     Pri    DeadTime    State/IfState         Duration I/F[State]
10.0.255.2        1    00:00:34     Full/DR              00:05:45 eth1[BDR]
vyos@vyos:~$ 
show ipv6 ospfv3 database
vyos@vyos:~$ show ipv6 ospfv3 database

    Area Scoped Link State Database (Area 0.0.0.0)

    Type LSId           AdvRouter       Age   SeqNum                        Payload
    Rtr  0.0.0.0        10.0.255.1      362 80000002             10.0.255.2/0.0.0.2
    Rtr  0.0.0.0        10.0.255.2      363 80000002             10.0.255.2/0.0.0.2
    Net  0.0.0.2        10.0.255.2      363 80000001                     10.0.255.2
    Net  0.0.0.2        10.0.255.2      363 80000001                     10.0.255.1
    INP  0.0.0.0        10.0.255.1      362 80000005          2001:dead:beef:5::/64
    INP  0.0.0.0        10.0.255.1      362 80000005         2001:dead:beef:10::/64
    INP  0.0.0.0        10.0.255.1      362 80000005         2001:dead:beef:15::/64
    INP  0.0.0.2        10.0.255.2      363 80000001       2001:dead:beef:ffff::/64

            I/F Scoped Link State Database (I/F eth1 in Area 0.0.0.0)

    Type LSId           AdvRouter       Age   SeqNum                        Payload
    Lnk  0.0.0.3        10.0.255.1      402 80000001       fe80::a00:27ff:fe60:f9e5
    Lnk  0.0.0.2        10.0.255.2      433 80000001       fe80::a00:27ff:fe97:f917

            I/F Scoped Link State Database (I/F eth0.10 in Area 0.0.0.0)

    Type LSId           AdvRouter       Age   SeqNum                        Payload
    Lnk  0.0.0.6        10.0.255.1      402 80000001       fe80::a00:27ff:fe87:12ef

            I/F Scoped Link State Database (I/F eth0.15 in Area 0.0.0.0)

    Type LSId           AdvRouter       Age   SeqNum                        Payload
    Lnk  0.0.0.5        10.0.255.1      402 80000001       fe80::a00:27ff:fe87:12ef

            I/F Scoped Link State Database (I/F eth0.5 in Area 0.0.0.0)

    Type LSId           AdvRouter       Age   SeqNum                        Payload
    Lnk  0.0.0.7        10.0.255.1      401 80000001       fe80::a00:27ff:fe87:12ef

            AS Scoped Link State Database

    Type LSId           AdvRouter       Age   SeqNum                        Payload
show ipv6 route
vyos@vyos:~$ show ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng,
       O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
       v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route

O   2001:dead:beef:5::/64 [110/1000] is directly connected, eth0.5, 00:05:20
C>* 2001:dead:beef:5::/64 is directly connected, eth0.5, 00:16:56
O   2001:dead:beef:10::/64 [110/1000] is directly connected, eth0.10, 00:05:20
C>* 2001:dead:beef:10::/64 is directly connected, eth0.10, 00:16:56
O   2001:dead:beef:15::/64 [110/1000] is directly connected, eth0.15, 00:05:20
C>* 2001:dead:beef:15::/64 is directly connected, eth0.15, 00:16:08
O   2001:dead:beef:ffff::/64 [110/100] is directly connected, eth1, 00:04:41
C>* 2001:dead:beef:ffff::/64 is directly connected, eth1, 00:08:23
C * fe80::/64 is directly connected, eth2, 00:16:49
C * fe80::/64 is directly connected, eth0.5, 00:16:57
C * fe80::/64 is directly connected, eth0.10, 00:16:57
C * fe80::/64 is directly connected, eth0.15, 00:16:57
C * fe80::/64 is directly connected, eth0, 00:17:00
C>* fe80::/64 is directly connected, eth1, 00:17:00

Testataan IPv6

ping 2001:dead:beef:5::2
lubuntu@lubuntu-virtualbox:~$ ping 2001:dead:beef:5::2
PING 2001:dead:beef:5::2(2001:dead:beef:5::2) 56 data bytes
64 bytes from 2001:dead:beef:5::2: icmp_seq=1 ttl=62 time=1.94 ms
64 bytes from 2001:dead:beef:5::2: icmp_seq=2 ttl=62 time=1.91 ms
64 bytes from 2001:dead:beef:5::2: icmp_seq=3 ttl=62 time=1.85 ms
^C
--- 2001:dead:beef:5::2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.848/1.901/1.944/0.039 ms
traceroute6 -n 2001:dead:beef:5::2
lubuntu@lubuntu-virtualbox:~$ traceroute6 -n 2001:dead:beef:5::2
traceroute to 2001:dead:beef:5::2 (2001:dead:beef:5::2) from 2001:dead:beef:100::2, 30 hops max, 24 byte packets
1  2001:dead:beef:100::1  0,3609 ms  0,3082 ms  0,2942 ms
2  2001:dead:beef:ffff::1  1,0319 ms  0,5650 ms  0,5187 ms
3  2001:dead:beef:5::2  1,9101 ms  1,5855 ms  1,4349 ms
Selaillaan IPv6 osoitteita Firefox:lla

Kirjoita IPv6 osoite hakasulkuihin [] osoitekentässä

esim. [2001:dead:beef:5::2]

!a

ssh vyos@2001:dead:beef:5::1
lubuntu@lubuntu-virtualbox:~$ ssh vyos@2001:dead:beef:5::1
The authenticity of host '2001:dead:beef:5::1 (2001:dead:beef:5::1)' can't be established.
ECDSA key fingerprint is SHA256:+kmN6RAKQNLfon9nVgc3Bw3RfnF0DKyd5gDPPKd48Tw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '2001:dead:beef:5::1' (ECDSA) to the list of known hosts.
Welcome to VyOS
vyos@2001:dead:beef:5::1's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 28 19:18:41 2020 from 2001:dead:beef:10::2
vyos@vyos:~$
/etc/hosts toimii samalla tavalla IPv6:lle
lubuntu@lubuntu-virtualbox:~$ more /etc/hosts
# Host addresses
127.0.0.1  localhost
127.0.1.1  lubuntu-virtualbox
::1        localhost ip6-localhost ip6-loopback
ff02::1    ip6-allnodes
ff02::2    ip6-allrouters
2001:dead:beef:10::2    lubuntu1.karo.saharinen

lubuntu@lubuntu-virtualbox:~$ ping lubuntu1.karo.saharinen
PING lubuntu1.karo.saharinen(lubuntu1.karo.saharinen (2001:dead:beef:10::2)) 56 data bytes
64 bytes from lubuntu1.karo.saharinen (2001:dead:beef:10::2): icmp_seq=1 ttl=62 time=1.99 ms
64 bytes from lubuntu1.karo.saharinen (2001:dead:beef:10::2): icmp_seq=2 ttl=62 time=3.14 ms
64 bytes from lubuntu1.karo.saharinen (2001:dead:beef:10::2): icmp_seq=3 ttl=62 time=2.09 ms
^C
--- lubuntu1.karo.saharinen ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.994/2.408/3.138/0.517 ms
lubuntu@lubuntu-virtualbox:~$

Jatka harjoituksiin!

E16 Tehdään verkosta Dual-Stack

Takaisin opintojakson aikatauluun?

Takaisin opintojakson aikatauluun


Lisenssi

Tämän opintojakson materiaalin on kirjoittanut Karo Saharinen ja se on lisensoitu Creative Commons Nimeä-EiKaupallinen-EiMuutoksia 4.0 Kansainvälinen -lisenssillä.

Creative Commons -lisenssi